package com.neuronbit.businessflow.flow.clazz;

import com.neuronbit.businessflow.intellij.model.Type;
import com.neuronbit.javaparser.resolution.types.ResolvedType;

/**
 * The interface Method info.
 */
public interface MethodInfo {
    /**
     * Gets name.
     *
     * @return the name
     */
    String getName();

    /**
     * Gets parameter count.
     *
     * @return the parameter count
     */
    int getParameterCount();

    /**
     * Gets return type.
     *
     * @return the return type
     */
    ResolvedType getReturnType();

    /**
     * Get parameters parameter info [ ].
     *
     * @return the parameter info [ ]
     */
    ParameterInfo[] getParameters();

    /**
     * Get exception types exception type info [ ].
     *
     * @return the exception type info [ ]
     */
    ExceptionTypeInfo[] getExceptionTypes();

    /**
     * Get parameter types parameter type info [ ].
     *
     * @return the parameter type info [ ]
     */
    ParameterTypeInfo[] getParameterTypes();

    /**
     * Gets parent.
     *
     * @return the parent
     */
    ClassInfo getParent();
}
